--- title: "L2-046 天梯赛的赛场安排" created: 2025-11-28 tags: - 算法 --- # L2-046 天梯赛的赛场安排 ## 题目 [L2-046 天梯赛的赛场安排](https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1649748772841508873&page=1) ![[image-512ba5b6.png]] ## 思路分析 ## 代码实现 ```cpp #include using namespace std; #define endl '\n' using ll = long long; using ull = unsigned long long; using PII = pair; using Pll = pair; int dx[4]= {-1,0,1,0},dy[4]= {0,1,0,-1}; const int inf = 0x3f3f3f3f; using PSI = pair; multiset classrooms;//记录每个教室剩余多少位置 priority_queue pq; //按照尚未安排赛场的队员人数从大到小的顺序,每一轮对当前未安排的人数最多的学校进行处理。 int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int n,c;cin>>n>>c; for(int i=0;i>schools>>peoples; cout<=c){ classrooms.insert(0); pq.push(n-c); }else{ auto it=classrooms.lower_bound(n); if(it!=classrooms.end()){ int remain=*it; classrooms.erase(it); classrooms.insert(remain-n); }else{ classrooms.insert(c-n); } } } cout<